package com.xunlai.infra.permission.business.converter;

import com.xunlai.infra.permission.business.dao.entity.RouteBindPoster;
import com.xunlai.infra.permission.business.dao.entity.RouteContact;
import com.xunlai.infra.permission.business.dao.entity.RouteExtraIntro;
import com.xunlai.infra.permission.business.dao.entity.RouteInfo;
import com.xunlai.infra.permission.business.dao.entity.RouteIntroduction;
import com.xunlai.infra.permission.business.dao.entity.RouteSchedule;
import com.xunlai.infra.permission.business.dao.entity.RouteSubject;
import com.xunlai.infra.permission.business.dao.entity.RouteTemplate;
import com.xunlai.infra.permission.business.dao.entity.RouteType;
import com.xunlai.infra.permission.business.vo.route.RouteBatchTransferVo;
import com.xunlai.infra.permission.business.vo.route.RouteBindPosterVo;
import com.xunlai.infra.permission.business.vo.route.RouteContactVo;
import com.xunlai.infra.permission.business.vo.route.RouteCreateReqVo;
import com.xunlai.infra.permission.business.vo.route.RouteListVo;
import com.xunlai.infra.permission.business.vo.route.RouteQueryVo;
import com.xunlai.infra.permission.business.vo.route.RouteScheduleVo;
import com.xunlai.infra.permission.business.vo.route.RouteSubjectCreateVo;
import com.xunlai.infra.permission.business.vo.route.RouteSubjectListVo;
import com.xunlai.infra.permission.business.vo.route.RouteSubjectQueryVo;
import com.xunlai.infra.permission.business.vo.route.RouteTemplateCreateVo;
import com.xunlai.infra.permission.business.vo.route.RouteTemplateListVo;
import com.xunlai.infra.permission.business.vo.route.RouteTemplateQueryVo;
import com.xunlai.infra.permission.business.vo.route.RouteTransferVo;
import com.xunlai.infra.permission.business.vo.route.RouteTypeCreateVo;
import com.xunlai.infra.permission.business.vo.route.RouteTypeListVo;
import com.xunlai.infra.permission.business.vo.route.RouteTypeQueryVo;
import javax.annotation.processing.Generated;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2024-02-21T19:24:58+0800",
    comments = "version: 1.5.3.Final, compiler: javac, environment: Java 17.0.5 (Amazon.com Inc.)"
)
public class RouteConverterImpl implements RouteConverter {

    @Override
    public RouteInfo convertCreateVo2RouteEntity(RouteCreateReqVo routeCreateReqVo) {
        if ( routeCreateReqVo == null ) {
            return null;
        }

        RouteInfo.RouteInfoBuilder routeInfo = RouteInfo.builder();

        routeInfo.routeName( routeCreateReqVo.getRouteName() );
        routeInfo.routeTemplate( routeCreateReqVo.getRouteTemplate() );
        routeInfo.routeSubject( routeCreateReqVo.getRouteSubject() );
        routeInfo.routeType( routeCreateReqVo.getRouteType() );
        routeInfo.routeStart( routeCreateReqVo.getRouteStart() );
        routeInfo.routeDestination( routeCreateReqVo.getRouteDestination() );
        routeInfo.routeVehicles( routeCreateReqVo.getRouteVehicles() );
        routeInfo.routeRepastFloor( routeCreateReqVo.getRouteRepastFloor() );
        routeInfo.routeRepastLimit( routeCreateReqVo.getRouteRepastLimit() );
        routeInfo.routeDesignerId( routeCreateReqVo.getRouteDesignerId() );
        routeInfo.routeDesigner( routeCreateReqVo.getRouteDesigner() );
        routeInfo.routeDesignerName( routeCreateReqVo.getRouteDesignerName() );
        routeInfo.routeDesignerMobile( routeCreateReqVo.getRouteDesignerMobile() );
        routeInfo.routeDesignerWxUri( routeCreateReqVo.getRouteDesignerWxUri() );
        routeInfo.routeLeaveVehicle( routeCreateReqVo.getRouteLeaveVehicle() );
        routeInfo.routeLeaveFrom( routeCreateReqVo.getRouteLeaveFrom() );
        routeInfo.routeLeaveTo( routeCreateReqVo.getRouteLeaveTo() );
        routeInfo.routeBackVehicle( routeCreateReqVo.getRouteBackVehicle() );
        routeInfo.routeBackFrom( routeCreateReqVo.getRouteBackFrom() );
        routeInfo.routeBackTo( routeCreateReqVo.getRouteBackTo() );
        routeInfo.routeVideo( routeCreateReqVo.getRouteVideo() );
        routeInfo.routeDay( routeCreateReqVo.getRouteDay() );
        routeInfo.routeScheduleStart( routeCreateReqVo.getRouteScheduleStart() );
        routeInfo.routeScheduleEnd( routeCreateReqVo.getRouteScheduleEnd() );

        return routeInfo.build();
    }

    @Override
    public RouteIntroduction convertCreateVo2IntroductionEntity(RouteCreateReqVo routeCreateReqVo) {
        if ( routeCreateReqVo == null ) {
            return null;
        }

        RouteIntroduction.RouteIntroductionBuilder routeIntroduction = RouteIntroduction.builder();

        routeIntroduction.routeSuggestRepast( routeCreateReqVo.getRouteSuggestRepast() );
        routeIntroduction.routeTradePrice( routeCreateReqVo.getRouteTradePrice() );
        routeIntroduction.routeFeature( routeCreateReqVo.getRouteFeature() );

        return routeIntroduction.build();
    }

    @Override
    public RouteSchedule convertCreateVo2ScheduleEntity(RouteScheduleVo routeScheduleVo) {
        if ( routeScheduleVo == null ) {
            return null;
        }

        RouteSchedule.RouteScheduleBuilder routeSchedule = RouteSchedule.builder();

        routeSchedule.scheduleOrder( routeScheduleVo.getScheduleOrder() );
        routeSchedule.scheduleCity( routeScheduleVo.getScheduleCity() );
        routeSchedule.scheduleVehicle( routeScheduleVo.getScheduleVehicle() );
        routeSchedule.scheduleTime( routeScheduleVo.getScheduleTime() );
        routeSchedule.scheduleDistance( routeScheduleVo.getScheduleDistance() );
        routeSchedule.scheduleHotel( routeScheduleVo.getScheduleHotel() );
        routeSchedule.scheduleRepast( routeScheduleVo.getScheduleRepast() );
        routeSchedule.scheduleVideo( routeScheduleVo.getScheduleVideo() );
        routeSchedule.scheduleDetail( routeScheduleVo.getScheduleDetail() );

        return routeSchedule.build();
    }

    @Override
    public RouteScheduleVo convertScheduleEntity2Vo(RouteSchedule routeSchedule) {
        if ( routeSchedule == null ) {
            return null;
        }

        RouteScheduleVo.RouteScheduleVoBuilder routeScheduleVo = RouteScheduleVo.builder();

        routeScheduleVo.scheduleOrder( routeSchedule.getScheduleOrder() );
        routeScheduleVo.scheduleCity( routeSchedule.getScheduleCity() );
        routeScheduleVo.scheduleVehicle( routeSchedule.getScheduleVehicle() );
        routeScheduleVo.scheduleTime( routeSchedule.getScheduleTime() );
        routeScheduleVo.scheduleDistance( routeSchedule.getScheduleDistance() );
        routeScheduleVo.scheduleHotel( routeSchedule.getScheduleHotel() );
        routeScheduleVo.scheduleRepast( routeSchedule.getScheduleRepast() );
        routeScheduleVo.scheduleVideo( routeSchedule.getScheduleVideo() );
        routeScheduleVo.scheduleDetail( routeSchedule.getScheduleDetail() );

        return routeScheduleVo.build();
    }

    @Override
    public RouteExtraIntro convertCreateVo2ExtraIntroEntity(RouteCreateReqVo routeCreateReqVo) {
        if ( routeCreateReqVo == null ) {
            return null;
        }

        RouteExtraIntro.RouteExtraIntroBuilder routeExtraIntro = RouteExtraIntro.builder();

        routeExtraIntro.routeHotelDesc( routeCreateReqVo.getRouteHotelDesc() );
        routeExtraIntro.routeContainItem( routeCreateReqVo.getRouteContainItem() );
        routeExtraIntro.routeExclusiveItem( routeCreateReqVo.getRouteExclusiveItem() );
        routeExtraIntro.routeChargedItem( routeCreateReqVo.getRouteChargedItem() );
        routeExtraIntro.routeShopArrange( routeCreateReqVo.getRouteShopArrange() );
        routeExtraIntro.routeOptionalItem( routeCreateReqVo.getRouteOptionalItem() );
        routeExtraIntro.routeVisaIntro( routeCreateReqVo.getRouteVisaIntro() );
        routeExtraIntro.routeTips( routeCreateReqVo.getRouteTips() );
        routeExtraIntro.routeAttention( routeCreateReqVo.getRouteAttention() );
        routeExtraIntro.routeSideLetter( routeCreateReqVo.getRouteSideLetter() );

        return routeExtraIntro.build();
    }

    @Override
    public RouteInfo convertQueryVo2InfoEntity(RouteQueryVo routeQueryVo) {
        if ( routeQueryVo == null ) {
            return null;
        }

        RouteInfo.RouteInfoBuilder routeInfo = RouteInfo.builder();

        routeInfo.id( routeQueryVo.getId() );
        routeInfo.routeTemplate( routeQueryVo.getRouteTemplate() );
        routeInfo.routeSubject( routeQueryVo.getRouteSubject() );
        routeInfo.routeType( routeQueryVo.getRouteType() );
        routeInfo.routeDestination( routeQueryVo.getRouteDestination() );
        routeInfo.routeNo( routeQueryVo.getRouteNo() );

        return routeInfo.build();
    }

    @Override
    public RouteListVo convertInfoEntity2ListVo(RouteInfo routeInfo) {
        if ( routeInfo == null ) {
            return null;
        }

        RouteListVo.RouteListVoBuilder routeListVo = RouteListVo.builder();

        routeListVo.id( routeInfo.getId() );
        routeListVo.routeName( routeInfo.getRouteName() );
        routeListVo.routeTemplate( routeInfo.getRouteTemplate() );
        routeListVo.templateName( routeInfo.getTemplateName() );
        routeListVo.routeSubject( routeInfo.getRouteSubject() );
        routeListVo.subjectName( routeInfo.getSubjectName() );
        routeListVo.routeType( routeInfo.getRouteType() );
        routeListVo.typeName( routeInfo.getTypeName() );
        routeListVo.routeStart( routeInfo.getRouteStart() );
        routeListVo.routeDestination( routeInfo.getRouteDestination() );
        routeListVo.routeVehicles( routeInfo.getRouteVehicles() );
        routeListVo.routeRepastFloor( routeInfo.getRouteRepastFloor() );
        routeListVo.routeRepastLimit( routeInfo.getRouteRepastLimit() );
        routeListVo.routeDesignerId( routeInfo.getRouteDesignerId() );
        routeListVo.routeDesigner( routeInfo.getRouteDesigner() );
        routeListVo.routeDesignerName( routeInfo.getRouteDesignerName() );
        routeListVo.routeDesignerMobile( routeInfo.getRouteDesignerMobile() );
        routeListVo.routeDesignerWxUri( routeInfo.getRouteDesignerWxUri() );
        routeListVo.routeLeaveVehicle( routeInfo.getRouteLeaveVehicle() );
        routeListVo.routeLeaveFrom( routeInfo.getRouteLeaveFrom() );
        routeListVo.routeLeaveTo( routeInfo.getRouteLeaveTo() );
        routeListVo.routeBackVehicle( routeInfo.getRouteBackVehicle() );
        routeListVo.routeBackFrom( routeInfo.getRouteBackFrom() );
        routeListVo.routeBackTo( routeInfo.getRouteBackTo() );
        routeListVo.routeVideo( routeInfo.getRouteVideo() );
        routeListVo.routeDay( routeInfo.getRouteDay() );
        routeListVo.valid( routeInfo.getValid() );
        routeListVo.deleted( routeInfo.getDeleted() );
        routeListVo.routeNo( routeInfo.getRouteNo() );
        routeListVo.routeScheduleStart( routeInfo.getRouteScheduleStart() );
        routeListVo.routeScheduleEnd( routeInfo.getRouteScheduleEnd() );

        return routeListVo.build();
    }

    @Override
    public RouteBindPoster convertBindVo2Entity(RouteBindPosterVo routeBindPosterVo) {
        if ( routeBindPosterVo == null ) {
            return null;
        }

        RouteBindPoster.RouteBindPosterBuilder routeBindPoster = RouteBindPoster.builder();

        routeBindPoster.routeId( routeBindPosterVo.getRouteId() );
        routeBindPoster.posterId( routeBindPosterVo.getPosterId() );

        return routeBindPoster.build();
    }

    @Override
    public RouteType convertCreateVo2RouteTypeEntity(RouteTypeCreateVo routeTypeCreateVo) {
        if ( routeTypeCreateVo == null ) {
            return null;
        }

        RouteType.RouteTypeBuilder routeType = RouteType.builder();

        routeType.typeName( routeTypeCreateVo.getTypeName() );

        return routeType.build();
    }

    @Override
    public RouteTypeListVo convertRouteTypeEntity2ListVo(RouteType routeType) {
        if ( routeType == null ) {
            return null;
        }

        RouteTypeListVo.RouteTypeListVoBuilder routeTypeListVo = RouteTypeListVo.builder();

        routeTypeListVo.id( routeType.getId() );
        routeTypeListVo.typeName( routeType.getTypeName() );
        routeTypeListVo.createUser( routeType.getCreateUser() );
        routeTypeListVo.createTime( routeType.getCreateTime() );

        return routeTypeListVo.build();
    }

    @Override
    public RouteType convertQueryVo2RouteTypeEntity(RouteTypeQueryVo routeTypeQueryVo) {
        if ( routeTypeQueryVo == null ) {
            return null;
        }

        RouteType.RouteTypeBuilder routeType = RouteType.builder();

        routeType.typeName( routeTypeQueryVo.getTypeName() );

        return routeType.build();
    }

    @Override
    public RouteSubject convertCreateVo2RouteSubjectEntity(RouteSubjectCreateVo routeSubjectCreateVo) {
        if ( routeSubjectCreateVo == null ) {
            return null;
        }

        RouteSubject.RouteSubjectBuilder routeSubject = RouteSubject.builder();

        routeSubject.subjectName( routeSubjectCreateVo.getSubjectName() );

        return routeSubject.build();
    }

    @Override
    public RouteSubjectListVo convertRouteSubjectEntity2ListVo(RouteSubject routeSubject) {
        if ( routeSubject == null ) {
            return null;
        }

        RouteSubjectListVo.RouteSubjectListVoBuilder routeSubjectListVo = RouteSubjectListVo.builder();

        routeSubjectListVo.id( routeSubject.getId() );
        routeSubjectListVo.subjectName( routeSubject.getSubjectName() );
        routeSubjectListVo.createUser( routeSubject.getCreateUser() );
        routeSubjectListVo.createTime( routeSubject.getCreateTime() );

        return routeSubjectListVo.build();
    }

    @Override
    public RouteSubject convertQueryVo2RouteSubjectEntity(RouteSubjectQueryVo routeSubjectQueryVo) {
        if ( routeSubjectQueryVo == null ) {
            return null;
        }

        RouteSubject.RouteSubjectBuilder routeSubject = RouteSubject.builder();

        return routeSubject.build();
    }

    @Override
    public RouteTemplate convertCreateVo2RouteTemplateEntity(RouteTemplateCreateVo routeTemplateCreateVo) {
        if ( routeTemplateCreateVo == null ) {
            return null;
        }

        RouteTemplate.RouteTemplateBuilder routeTemplate = RouteTemplate.builder();

        routeTemplate.templateName( routeTemplateCreateVo.getTemplateName() );
        routeTemplate.templateDays( routeTemplateCreateVo.getTemplateDays() );

        return routeTemplate.build();
    }

    @Override
    public RouteTemplateListVo convertRouteTemplateEntity2ListVo(RouteTemplate routeTemplate) {
        if ( routeTemplate == null ) {
            return null;
        }

        RouteTemplateListVo.RouteTemplateListVoBuilder routeTemplateListVo = RouteTemplateListVo.builder();

        routeTemplateListVo.id( routeTemplate.getId() );
        routeTemplateListVo.templateName( routeTemplate.getTemplateName() );
        routeTemplateListVo.templateDays( routeTemplate.getTemplateDays() );
        routeTemplateListVo.createUser( routeTemplate.getCreateUser() );
        routeTemplateListVo.createTime( routeTemplate.getCreateTime() );

        return routeTemplateListVo.build();
    }

    @Override
    public RouteTemplate convertQueryVo2RouteTemplateEntity(RouteTemplateQueryVo routeTemplateQueryVo) {
        if ( routeTemplateQueryVo == null ) {
            return null;
        }

        RouteTemplate.RouteTemplateBuilder routeTemplate = RouteTemplate.builder();

        routeTemplate.templateName( routeTemplateQueryVo.getTemplateName() );
        routeTemplate.templateDays( routeTemplateQueryVo.getTemplateDays() );

        return routeTemplate.build();
    }

    @Override
    public RouteContactVo convertContactEntity2Vo(RouteContact routeContact) {
        if ( routeContact == null ) {
            return null;
        }

        RouteContactVo.RouteContactVoBuilder routeContactVo = RouteContactVo.builder();

        routeContactVo.id( routeContact.getId() );
        routeContactVo.contactUserId( routeContact.getContactUserId() );
        routeContactVo.contactUserMobile( routeContact.getContactUserMobile() );
        routeContactVo.routeId( routeContact.getRouteId() );
        routeContactVo.contactUserWxUri( routeContact.getContactUserWxUri() );
        routeContactVo.contactUserName( routeContact.getContactUserName() );
        routeContactVo.contactUserEmail( routeContact.getContactUserEmail() );
        routeContactVo.posterId( routeContact.getPosterId() );
        routeContactVo.originalCreator( routeContact.getOriginalCreator() );
        routeContactVo.routeTemplate( routeContact.getRouteTemplate() );

        return routeContactVo.build();
    }

    @Override
    public RouteContact convertTransferVo2ContactEntity(RouteTransferVo routeTransferVo) {
        if ( routeTransferVo == null ) {
            return null;
        }

        RouteContact.RouteContactBuilder routeContact = RouteContact.builder();

        routeContact.contactUserMobile( routeTransferVo.contactUserMobile() );
        routeContact.routeId( routeTransferVo.routeId() );
        routeContact.contactUserWxUri( routeTransferVo.contactUserWxUri() );
        routeContact.contactUserName( routeTransferVo.contactUserName() );
        routeContact.contactUserEmail( routeTransferVo.contactUserEmail() );
        routeContact.posterId( routeTransferVo.posterId() );

        return routeContact.build();
    }

    @Override
    public RouteContact convertBatchTransferVo2ContactEntity(RouteBatchTransferVo routeBatchTransferVo) {
        if ( routeBatchTransferVo == null ) {
            return null;
        }

        RouteContact.RouteContactBuilder routeContact = RouteContact.builder();

        routeContact.contactUserMobile( routeBatchTransferVo.contactUserMobile() );
        routeContact.contactUserWxUri( routeBatchTransferVo.contactUserWxUri() );
        routeContact.contactUserName( routeBatchTransferVo.contactUserName() );
        routeContact.contactUserEmail( routeBatchTransferVo.contactUserEmail() );
        routeContact.posterId( routeBatchTransferVo.posterId() );
        routeContact.originalCreator( routeBatchTransferVo.originalCreator() );
        routeContact.routeTemplate( routeBatchTransferVo.routeTemplate() );

        return routeContact.build();
    }
}
